const express = require('express')
const app = express()
const cors = require('cors')
app.use(cors())

// 配置urlencoded解决 req.body undefined问题
app.use(express.urlencoded({ extended: false}))

// 安装JWT 和 express-jwt
// npm install jsonwebtoken express-jwt
// 导入
const jwt = require('jsonwebtoken')         //生成jwt
const expressJWT = require('express-jwt')   //解密jwt
// 创建自定义秘钥
const secretkey = 'zidingyi'

// 解析token 
app.use(expressJWT({ secret: secretkey, algorithms: ['HS256']}).unless({ path: [/^\/api\//]} ))

let userInfo = {defaultName: 'dfn'}
//登录操作
app.post('/api/post', (req, res) => {
  userInfo = req.body
  res.send('登录成功')
})

app.get('/api/get', (req, res) => {
  res.send({
    status: 200,
    message: '登录成功',
    // jwt.sign() 生成 JWT 字符串
    // 参数：用户信息对象、加密密钥、配置对象-token有效期
    // 尽量不保存敏感信息，因此只有用户名，没有密码
    token: jwt.sign(userInfo, secretkey, {expiresIn: '10h'})
  })
})

app.get('/admin/getinfo', (req, res) => {
  console.log(req.user)
  res.send({
    status: 200,
    message: '获取用户信息成功',
    data: req.user
  })
})

app.listen(80, () => {
  console.log('服务器运行在http://127.0.0.1')
})